<!DOCTYPE html>
<title>Character Encoding</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="resources/char-encoding-utils.js"></script>
<body>
<script>

testEncode("UTF-8", "U+00A0", "%C2%A0");
testEncode('UTF-8', 'U+221A', '%E2%88%9A');

// Unpaired UTF-16 surrogates
testEncode("UTF-8", "0xD800", "%EF%BF%BD"); // U+FFFD (REPLACEMENT CHARACTER)
testEncode("UTF-8", "0xDC00", "%EF%BF%BD"); // U+FFFD (REPLACEMENT CHARACTER)

//Yen symbol in gbk
testEncode('GBK', 'U+00A5', '%A3%A4');
testEncode('gb2312', 'U+00A5', '%A3%A4');
testEncode('GB_2312-80', 'U+00A5', '%A3%A4');
//Euro symbol in gbk
testEncode('GBK', 'U+20AC', '%80');
testEncode('gb2312', 'U+20AC', '%80');
testEncode('GB_2312-80', 'U+20AC', '%80');
//Align GBK with gb18030
// See https://www.w3.org/Bugs/Public/show_bug.cgi?id=28740#c3
testEncode('GBK', 'U+01F9', '%A8%BF');
testEncode('GBK', 'U+1E3F', '%A8%BC');
testEncode('gb18030', 'U+01F9', '%A8%BF');
testEncode('gb18030', 'U+1E3F', '%A8%BC');
testEncode('GBK', 'U+2026', '%A1%AD');
testEncode('GBK', 'U+FF5E', '%A1%AB');
testEncode('gb18030', 'U+2026', '%A1%AD');
testEncode('gb18030', 'U+FF5E', '%A1%AB');
// GBK does not cover these two characters.
testEncode('GBK', 'U+22EF', '%26%238943%3B');
testEncode('GBK', 'U+301C', '%26%2312316%3B');

// Big5: See https://www.w3.org/Bugs/Public/show_bug.cgi?id=27878
testEncode('Big5', 'U+2550', '%F9%F9');
testEncode('Big5', 'U+255E', '%F9%E9');
testEncode('Big5', 'U+2561', '%F9%EB');
testEncode('Big5', 'U+256A', '%F9%EA');
testEncode('Big5', 'U+5341', '%A4Q');
testEncode('Big5', 'U+5345', '%A4%CA');

// KOI8-U/KOI8-RU:  https://www.w3.org/Bugs/Public/show_bug.cgi?id=17053
testEncode('KOI8-U', 'U+045E', '%AE');
testEncode('KOI8-U', 'U+040E', '%BE');
testEncode('KOI8-RU', 'U+045E', '%AE');
testEncode('KOI8-RU', 'U+040E', '%BE');

// Replacement encodings - should encode as UTF-8
testEncode("csiso2022kr", "U+00A0", "%C2%A0");
testEncode("hz-gb-2312", "U+00A0", "%C2%A0");
testEncode("iso-2022-cn", "U+00A0", "%C2%A0");
testEncode("iso-2022-cn-ext", "U+00A0", "%C2%A0");
testEncode("iso-2022-kr", "U+00A0", "%C2%A0");

</script>
</body>
